import axios from 'axios';
import type { AxiosRequestConfig, AxiosResponse } from 'axios';

// 创建axios实例
const instance = axios.create({
  baseURL: import.meta.env.VITE_API_BASE_URL || 'https://lke.tencentcloudapi.com',
  timeout: 30000,
  headers: {
    'Content-Type': 'application/json'
  }
});

// 请求拦截器
instance.interceptors.request.use(
  (config) => {
    // 可以在这里添加认证信息等
    return config;
  },
  (error) => {
    return Promise.reject(error);
  }
);

// 响应拦截器
instance.interceptors.response.use(
  (response) => {
    // 对响应数据进行处理
    const res = response.data;
    if (res.code !== 0) {
      console.error('API错误:', res.message || '请求失败');
      return Promise.reject(new Error(res.message || '请求失败'));
    }
    return res;
  },
  (error) => {
    console.error('请求错误:', error);
    return Promise.reject(error);
  }
);

// 通用请求方法
export async function request<T>(url: string, config?: AxiosRequestConfig): Promise<T> {
  try {
    const response = await instance.request<any, T>({
      url,
      ...config,
    });
    return response;
  } catch (error) {
    return Promise.reject(error);
  }
}

// 导出axios实例
export default instance; 